﻿#define _CRT_SECURE_NO_WARNINGS 
#include<stdio.h>
#include<assert.h>
#include <string.h>
int main()
{
	int a = 10;
	return 0;
}
//0x006FFD70
//0x006FFD71
//0x006FFD72
//0x006FFD73
// 取地址操作符
//int main()
//{
//	int a = 10;
//	&a;//取出a的地址
//	printf("%p\n", &a);
//	return 0;
//}

////指针变量
//int main()
//{
//	int a = 10;
//	int* pa = &a;//取出a的地址并存储到指针变量pa中
//
//	return 0;
//}
//
//解引用操作符*
//int main()
//{
//	int a = 100;
//	int* pa = &a;
//	*pa = 0;
//	return 0;
//}
//
// //指针变量的⼤⼩取决于地址的⼤⼩
//32位平台下地址是32个bit位（即4个字节）
//64位平台下地址是64个bit位（即8个字节）
//int main()
//{
//	printf("%zd\n", sizeof(char*));
//	printf("%zd\n", sizeof(short*));
//	printf("%zd\n", sizeof(int*));
//	printf("%zd\n", sizeof(double*));
//	return 0;
//}

//void* 类型的指针不能直接进行指针的+-整数和解引⽤的运算
// int main()
//{
//	int a = 10;
//	int* pa = &a;
//	char* pc = &a;
//	return 0;
//}
// int类型的变量的地址赋值给⼀个char*类型的指针变量类型不兼容
// 
// int main()
//{
//	int a = 10;
//	void* pa = &a;
//	void* pc = &a;
//	*pa = 10;
//	*pc = 0;
//	return 0;
//}
////把arr里的字符左旋k个字符
//void left_move(char* arr, int k)
//{
//    int i;
//    int len = strlen(arr) - 1;
//    for (i = 0; i < k; i++)
//    {
//        //左旋转k个字符
//        char t = *arr;
//        int j;
//        for (j = 0; j < len; j++)
//        {
//            *(arr + j) = *(arr + j + 1);
//        }
//        *(arr + len) = t;
//    }
//}
//int main()
//{
//    char arr[] = "ABCD";
//    int k = 0;
//    printf("左旋字符:");
//    scanf("%d", &k);
//    left_move(arr, k);
//    printf("%s\n", arr);
//    return 0;
//}

////调整数组使奇数全部都位于偶数前面。
//
//void array(int arr[], int num)
//{
//	int left = 0;
//	int right = num - 1;
//	while (left < right)
//	{
//		if (arr[left] % 2 == 0)
//		{
//			if (arr[right] % 2 != 0)         
//			{
//				int tmp = arr[left];
//				arr[left] = arr[right];
//				arr[right] = tmp;
//			}
//			else                    
//			{
//				right--;
//			}
//		}
//		else
//		{
//			left++;
//		}
//	}
//	for (int i = 0; i < num; i++)
//	{
//		printf("%d ", arr[i]);
//	}
//}
//
//int main()
//{
//	int arr[10] = { 0,1,2,3,4,5,6,7,8,9 };
//	int num = sizeof(arr) / sizeof(arr[0]);
//	array(arr, num);
//	return 0;
//}

//模拟实现库函数strlen
//int my_strlen(const char* str)
//{
//	int count = 0;
//	assert(str);
//	while (*str)
//	{
//		count++;
//		str++;
//	}
//	return count;
//}
//int main()
//{
//	int len = my_strlen("abcdef");
//	printf("%d\n", len);
//	return 0;
//}
//6，12
//int main()
//
//{
//	unsigned long pulArray[] = { 6,7,8,9,10 };
//	unsigned long* pulPtr;
//	pulPtr = pulArray;
//	*(pulPtr + 3) += 3;
//	printf("%d,%d\n", *pulPtr, *(pulPtr + 3));
//}